package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.PlatMchntInfo;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 平台商户正式表接口类
 * Created by 赵奎伍 on 2020/3/23
 */
public interface PlatMchntInfoMapper {

    /**
     * 根据多法人标识查询平台商户信息
     *
     * @param instId 多法人标识
     * @return 平台商户信息
     * @throws Exception 异常
     */
    PageResult selectPlatMchntInfoByInstIdByPage(String instId, PageInfo pageInfo) throws Exception;

    /**
     * 根据多法人标识查询平台商户信息
     *
     * @param instId 多法人标识
     * @return 平台商户信息
     * @throws Exception 异常
     */
    List<PlatMchntInfo> selectPlatMchntInfoByInstId(String instId) throws Exception;

    /**
     * 根据平台商户号与平台商户名称查询平台商户信息
     *
     * @param instId        多法人标识
     * @param platMchntNo   平台商户号
     * @param platMchntName 签约机构代码
     * @param signInstId    平台商户名称
     * @return 代平台商户信息
     * @throws Exception 异常
     */
    PageResult selectPlatMchntInfoByPlatMchntNoOrPlatMchntNameOrSignInstIdByPage(String instId, String platMchntNo, String platMchntName, String signInstId, PageInfo pageInfo) throws Exception;

    /**
     * 根据平台商户号与平台商户名称查询平台商户信息
     *
     * @param instId        多法人标识
     * @param platMchntNo   平台商户号
     * @param platMchntName 签约机构代码
     * @param signInstId    平台商户名称
     * @return 代平台商户信息
     * @throws Exception 异常
     */
    List<PlatMchntInfo> selectPlatMchntInfoByPlatMchntNoOrPlatMchntNameOrSignInstId(String instId, String platMchntNo, String platMchntName, String signInstId) throws Exception;

    /**
     * 根据多法人标识查询平台商户信息
     *
     * @param instId 多法人标识
     * @return 平台商户信息
     * @throws Exception 异常
     */
    PlatMchntInfo selectPlatMchntInfoByMchntNo(String instId, String mchntNo) throws Exception;

    /**
     * 根据当前角色的所属机构查询平台商户信息
     * <p>
     * 平台商户状态 platMchntStatus = 01
     * 管理机构 manageInstId != 800000000 (预置数据)
     *
     * @param instId        多法人标识
     * @param platMchntNo   平台商户号
     * @param platMchntName 平台商户名称
     * @param manageInstId  管理机构代码
     * @param signInstId    当前角色的所属机构
     * @return 平台商户信息
     * @throws Exception 异常信息
     */
    List<PlatMchntInfo> selectPlatMchntInfo(String instId, String platMchntNo, String platMchntName, String manageInstId, String signInstId) throws Exception;

    /**
     * 根据当前角色的所属机构查询平台商户信息
     * <p>
     * 平台商户状态 platMchntStatus = 01
     * 管理机构 manageInstId != 800000000 (预置数据)
     *
     * @param instId        多法人标识
     * @param platMchntNo   平台商户号
     * @param platMchntName 平台商户名称
     * @param manageInstId  签约机构代码
     * @param signInstId    当前角色的所属机构
     * @param pageInfo      分页信息
     * @return 平台商户信息
     * @throws Exception 异常信息
     */
    PageResult selectPlatMchntInfoByPage(String instId, String platMchntNo, String platMchntName, String manageInstId, String signInstId, PageInfo pageInfo) throws Exception;

}
